﻿//OrderTraceItem.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.BusinessEntities
{
	using System;
	using System.ComponentModel;

	/// <summary>
	/// Тип действия.
	/// </summary>
	public enum OrderTraceActions
	{
		/// <summary>
		/// Отправка заявки на регистрацию.
		/// </summary>
		Registering,

		/// <summary>
		/// Успешная регистрации заявки.
		/// </summary>
		Registered,

		/// <summary>
		/// Ошибка регистрации или отмены заявки.
		/// </summary>
		Failed,

		/// <summary>
		/// Отправка заявки на перерегистрацию.
		/// </summary>
		ReRegistering,

		/// <summary>
		/// Отправка заявки на отмену.
		/// </summary>
		Canceling,

		/// <summary>
		/// Изменение заявки.
		/// </summary>
		Changed,

		/// <summary>
		/// Новая сделка.
		/// </summary>
		NewMyTrade,
	}

	/// <summary>
	/// Элемент трассировки заявки.
	/// </summary>
	[DisplayName("Элемент трассировки заявки")]
	[Description("Элемент трассировки заявки (описание действия производимого с заявкой).")]
	public class OrderTraceItem : OrderLogItem
	{
		/// <summary>
		/// Биржевое время события.
		/// </summary>
		[DisplayName("Биржевое время")]
		[Description("Биржевое время события.")]
		[Category("Основные")]
		public DateTime Time { get; set; }

		/// <summary>
		/// Локальное время события.
		/// </summary>
		[DisplayName("Локальное время")]
		[Description("Локальное время события.")]
		[Category("Основные")]
		public DateTime LocalTime { get; set; }

		/// <summary>
		/// Действие.
		/// </summary>
		[DisplayName("Тип действия")]
		[Description("Тип действия с заявкой.")]
		[Category("Основные")]
		public OrderTraceActions Action { get; set; }

		/// <summary>
		/// <see cref="BusinessEntities.Order.Id"/> старой заявки (при перерегистрации).
		/// </summary>
		[DisplayName("Идентификатор")]
		[Description("Идентификатор старой заявки (при перерегистрации).")]
		[Category("Основные")]
		public long OldOrderId { get; set; }

		/// <summary>
		/// <see cref="BusinessEntities.Order.TransactionId"/> старой заявки (при перерегистрации).
		/// </summary>
		[DisplayName("Номер транзакции")]
		[Description("Номер транзакции старой заявки (при перерегистрации).")]
		[Category("Основные")]
		public long OldOrderTransactionId { get; set; }

		/// <summary>
		/// Ошибка.
		/// </summary>
		[DisplayName("Ошибка")]
		[Description("Описание ошибки.")]
		[Category("Основные")]
		public OrderFail Fail { get; set; }
	}
}